Generally, legged mobile robots which move by repeating lifting and then landing actions of each of a plurality of legs are problematic in that as the moving speed of the robot increases, the frictional force between the foot at the distal end of a leg and the floor reaches a limit due to reactive forces produced when the leg swings, causing an angular slippage between the foot and the floor, so that the robot as a whole has its posture turned about a vertical axis and tends to deviate from the direction of a desired gait or from a desired path.
Additionally, only a desired gait for keeping the body of a robot in a vertical posture (upstanding posture) at all times and causing the robot to walk straight is not necessarily generated. At a desired gait, the entire robot or the body of the robot may turn or may be tilted forwardly, rearwardly, leftwardly, and rightwardly. That is, there is a posture rotation of the entire robot (or a posture rotation of a representative region such as the body of the robot) even at a desired gait. In the present specification, a posture rotation at a desired gait will be referred to as a desired posture rotation.
The robot tends to be displaced from the direction of a desired gait or from a desired path basically due to the phenomenon that an actual posture rotation of the entire robot (or an actual posture rotation of a representative region such as the body) deviates from the desired posture rotation. This phenomenon should strictly be called “perturbation from the desired posture rotation” or “posture rotation perturbation”. However, if there is no danger of confusion of the phenomenon with the desired posture rotation, then it will be shortened into “posture rotation”. A phenomenon that the robot in its entirety is rotated in posture about the vertical axis and deviates from the direction of a desired gait will hereinafter referred to as “spin”.
In order to solve the above problems, it is necessary to recognize the position of the robot and the direction in which the robot moves, and perform trajectory guidance control for preventing the robot from deviating from a desired path.
Known systems for path guidance control include trajectory guidance control systems for flight vehicles such as rockets and unmanned vehicles. However, it has been difficult to apply these control systems directly for controlling legged mobile robots. There are three reasons, for example, for the difficulty as described below.
First, many regions such as the body of a robot are intensively accelerated and decelerated even while the robot is making one step, and it has been difficult to accurately recognize an actual position and posture (orientation) of those regions.
Secondly, even when a robot moves straight, for example, the position or posture of the body, which is a representative part, of the robot needs to swing to the left and right at all times in order to keep the robot in dynamic balance. Therefore, the speed of the body and the traveling direction (moving direction) thereof are not in harmony with each other. Furthermore, since the robot can move in any desired directions irrespective of the orientation of the body, the orientation of the body and the traveling direction thereof are not necessarily in agreement with each other. That is, simply observing an instantaneous motion status of the robot, such as the speed of the body, the orientation of the robot, etc., fails to determine whether the robot is going to deviate from the desired path or not.
Thirdly, since the robot has to be kept in posture balance and the capability limits of actuators must not be exceeded, the robot has been unable to abruptly change the gait. For example, if the robot is to abruptly change the landing position for a foot thereof immediately before the foot lands on the floor, the robot may be unable to change the landing position because the speeds or forces of actuators may be likely to exceed their limits. Even when the robot can change the landing position, the robot may possibly be thrown out of balance after the foot has landed on the floor.
As described above, it has been difficult to simply apply the conventional path guidance technology to robots.
The present invention has been made in view of the above background. It is an object of the present invention to provide a control apparatus for controlling a legged mobile robot to appropriately perform a path guidance (trajectory guidance) process for guiding the robot to follow a desired path.
Another object of the present invention is to provide a control apparatus for controlling a legged mobile robot to move smoothly without going out of a limited range even when the landing position for each leg is limited upon each step, as when the robot moves on steppingstones or a staircase.
Still another object of the present invention is to provide a footstep determining apparatus which is capable of appropriately determining desired footsteps for a robot as a row of landing positions/directions for legs based on a given desired path or a limited range of landing positions with respect to steppingstones, before the robot moves or in a simulation performed by an offline computer.